import sequelize from '../config/db.js'; // 引入 Sequelize 实例
import { DataTypes } from 'sequelize';

const Comment = sequelize.define('Comment', {
  id: {
    type: DataTypes.BIGINT.UNSIGNED,
    autoIncrement: true,
    primaryKey: true,
    comment: '评论ID'
  },
  article_id: {
    type: DataTypes.BIGINT.UNSIGNED,
    allowNull: false,
    comment: '所属文章ID（关联 wp_posts 表）'
  },
  user_id: {
    type: DataTypes.UUID, // 使用 UUID 类型
    allowNull: false,
    comment: '评论者ID（关联 wp_users 表）'
  },
  parent_id: {
    type: DataTypes.BIGINT.UNSIGNED,
    defaultValue: 0,
    comment: '父评论ID（0 表示根评论）'
  },
  root_id: {
    type: DataTypes.BIGINT.UNSIGNED,
    defaultValue: 0,
    comment: '根评论ID'
  },
  content: {
    type: DataTypes.TEXT,
    allowNull: false,
    comment: '评论内容'
  },
  depth: {
    type: DataTypes.TINYINT.UNSIGNED,
    defaultValue: 1,
    comment: '嵌套深度（根评论为 1）'
  },
  created_at: {
    type: DataTypes.DATE,
    defaultValue: DataTypes.NOW,
    comment: '创建时间'
  },
  updated_at: {
    type: DataTypes.DATE,
    defaultValue: DataTypes.NOW,
    onUpdate: DataTypes.NOW,
    comment: '更新时间'
  },
  is_deleted: {
    type: DataTypes.TINYINT(1),
    defaultValue: 0,
    comment: '软删除标记（0 未删除，1 已删除）'
  }
}, {
  tableName: 'comments', // 表名
  timestamps: false, // 禁用 Sequelize 的默认时间戳字段（createdAt 和 updatedAt）
  comment: '评论表'
});

export default Comment;